package config

// WechatConfig 微信配置
type WechatConfig struct {
	// 小程序配置
	AppId     string `json:"appId"`     // 小程序AppId
	AppSecret string `json:"appSecret"` // 小程序AppSecret
	
	// 微信支付配置
	MchId     string `json:"mchId"`     // 商户号
	ApiKey    string `json:"apiKey"`    // API密钥
	NotifyUrl string `json:"notifyUrl"` // 支付回调地址
}

// GetWechatConfig 获取微信配置
// 在实际项目中，这些配置应该从环境变量或配置文件中读取
func GetWechatConfig() *WechatConfig {
	return &WechatConfig{
		// ==================== 小程序配置 ====================
		// 获取方式：
		// 1. 登录微信公众平台：https://mp.weixin.qq.com/
		// 2. 进入：开发 → 开发管理 → 开发设置
		// 3. 复制 AppID(小程序ID)
		AppId: "wx1234567890abcdef", // 示例格式，请替换为真实AppId
		
		// 获取方式：
		// 1. 在上述页面中找到 AppSecret(小程序密钥)
		// 2. 点击"生成"按钮（注意：只显示一次，请立即保存）
		AppSecret: "abcdef1234567890abcdef1234567890", // 32位字符串
		
		// ==================== 微信支付配置 ====================
		// 获取方式：
		// 1. 在小程序后台申请微信支付：功能 → 微信支付 → 申请接入
		// 2. 审核通过后登录微信支付商户平台：https://pay.weixin.qq.com/
		// 3. 在首页或账户中心 → 商户信息中查看商户号
		MchId: "1234567890", // 10位数字
		
		// 获取方式：
		// 1. 登录微信支付商户平台
		// 2. 进入：账户中心 → API安全 → API密钥
		// 3. 点击"设置密钥"，设置一个32位的随机字符串
		// 注意：这个密钥是你自己设置的，不是微信生成的
		ApiKey: "your32characterapikeyhere123456", // 32位字符串，自己设置
		
		// 支付结果通知地址
		// 这是你的服务器地址，微信支付完成后会回调这个地址
		// 必须是HTTPS地址，且外网可访问
		NotifyUrl: "https://api.yourdomain.com/api/payment/wechat/notify",
	}
}

// ==================== 配置获取详细说明 ====================

/*
1. 小程序AppId和AppSecret获取步骤：
   
   步骤1：注册小程序
   - 访问 https://mp.weixin.qq.com/
   - 点击"立即注册" → 选择"小程序"
   - 填写邮箱、密码等信息完成注册
   
   步骤2：获取AppId
   - 登录小程序后台
   - 在首页即可看到AppID
   - 或进入：开发 → 开发管理 → 开发设置
   
   步骤3：获取AppSecret
   - 在开发设置页面找到"AppSecret(小程序密钥)"
   - 点击"生成"按钮
   - ⚠️ 重要：密钥只显示一次，请立即复制保存

2. 微信支付商户号和API密钥获取步骤：
   
   步骤1：申请微信支付
   - 在小程序后台：功能 → 微信支付 → 申请接入
   - 需要提供：营业执照、身份证、银行账户等资料
   - 审核时间：1-7个工作日
   
   步骤2：获取商户号
   - 审核通过后会收到邮件通知
   - 登录微信支付商户平台：https://pay.weixin.qq.com/
   - 在首页可以看到商户号（10位数字）
   
   步骤3：设置API密钥
   - 进入：账户中心 → API安全 → API密钥
   - 点击"设置密钥"
   - 输入32位随机字符串（建议使用密码生成器）
   - 这个密钥用于签名验证，请妥善保管

3. 回调地址配置：
   
   - 必须是HTTPS协议
   - 必须是外网可访问的地址
   - 格式：https://yourdomain.com/api/payment/wechat/notify
   - 需要在微信支付商户平台配置：
     产品中心 → 开发配置 → 支付配置 → 扫码支付回调链接

4. 开发环境配置：
   
   - 开发阶段可以使用内网穿透工具（如ngrok）
   - 生产环境必须使用真实的HTTPS域名
   - 确保服务器防火墙允许微信服务器访问回调地址

5. 安全注意事项：
   
   - AppSecret和ApiKey是敏感信息，不要提交到代码仓库
   - 建议使用环境变量或配置文件管理
   - 定期更换API密钥
   - 监控异常的API调用
*/